package vip.zhaotao.base;

import javax.servlet.http.HttpServletResponse;

/**
 * 基础 Controller
 */
public class BaseController {

    /**
     * 设置Zip响应头以及文件名称
     *
     * @param response
     * @param fileName     文件名称
     * @param encodingName 编码名称
     */
    protected void setZipHeader(HttpServletResponse response, String fileName, String encodingName) {
        this.setHeader(response, "application/zip", fileName, encodingName);
    }

    /**
     * 设置docx响应头以及文件名称
     *
     * @param response
     * @param fileName     文件名称
     * @param encodingName 编码名称
     */
    protected void setDocxHeader(HttpServletResponse response, String fileName, String encodingName) {
        this.setHeader(response, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", fileName, encodingName);
    }

    /**
     * 设置doc响应头以及文件名称
     *
     * @param response
     * @param fileName     文件名称
     * @param encodingName 编码名称
     */
    protected void setDocHeader(HttpServletResponse response, String fileName, String encodingName) {
        this.setHeader(response, "application/msword", fileName, encodingName);
    }

    /**
     * 设置xlsx响应头以及文件名称
     *
     * @param response
     * @param fileName     文件名称
     * @param encodingName 编码名称
     */
    protected void setXlsxHeader(HttpServletResponse response, String fileName, String encodingName) {
        this.setHeader(response, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName, encodingName);
    }

    /**
     * 设置xls响应头以及文件名称
     *
     * @param response
     * @param fileName     文件名称
     * @param encodingName 编码名称
     */
    protected void setXlsHeader(HttpServletResponse response, String fileName, String encodingName) {
        this.setHeader(response, "application/vnd.ms-excel", fileName, encodingName);
    }

    /**
     * 设置响应头
     *
     * @param response
     * @param contentType
     * @param fileName     文件名称
     * @param encodingName 编码名称
     */
    protected void setHeader(HttpServletResponse response, String contentType, String fileName, String encodingName) {
        response.setCharacterEncoding(encodingName);
        response.setContentType(contentType);
        response.setHeader("Content-Disposition", String.format("attachment;filename=%s", fileName));
    }


}
